package com.xqb.modules.domain.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xqb.common.annotation.Excel;
import com.xqb.common.core.domain.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 课程对象 les_course
 *
 * @author xqb
 * @date 2024-10-14
 */
@Data
public class LesCourse extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 课程id，对应正式id */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 机构id */
    @Excel(name = "机构id")
    private Long insId;
    @TableField(exist = false)
    private String insName;

    /** 课程名称 */
    @Excel(name = "课程名称")
    private String name;

    /** 课程类型，1：线上课，2：线下课 */
    @Excel(name = "课程类型，1：线上课，2：线下课")
    private Long courseType;

    /** 封面链接 */
    @Excel(name = "封面链接")
    private String coverUrl;

    /** 一级课程分类id */
    @Excel(name = "一级课程分类id")
    private Long firstCateId;

    /** 二级课程分类id */
    @Excel(name = "二级课程分类id")
    private Long secondCateId;

    /** 三级课程分类id */
    @Excel(name = "三级课程分类id")
    private Long thirdCateId;

    /** 售卖方式0付费，1：免费 */
    @Excel(name = "售卖方式0付费，1：免费")
    private Long free;

    /** 课程价格，单位为分 */
    @Excel(name = "课程价格，单位为分")
    private Long price;

    /** 模板类型，1：固定模板，2：自定义模板 */
    @Excel(name = "模板类型，1：固定模板，2：自定义模板")
    private Long templateType;

    /** 自定义模板的连接 */
    @Excel(name = "自定义模板的连接")
    private String templateUrl;

    /** 课程状态，1：待上架，2：已上架，3：下架，4：已完结 */
    @Excel(name = "课程状态，1：待上架，2：已上架，3：下架，4：已完结")
    private Long status;

    /** 课程购买有效期开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "课程购买有效期开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date purchaseStartTime;

    /** 课程购买有效期结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "课程购买有效期结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date purchaseEndTime;

    /** 信息填写进度 */
    @Excel(name = "信息填写进度")
    private Long step;

    /** 课程评价得分，45代表4.5星 */
    @Excel(name = "课程评价得分，45代表4.5星")
    private Long score;

    /** 课程总时长 */
    @Excel(name = "课程总时长")
    private Integer mediaDuration;

    /** 课程有效期，单位月 */
    @Excel(name = "课程有效期，单位月")
    private Long validDuration;

    /** 课程总节数，包括练习 */
    @Excel(name = "课程总节数，包括练习")
    private Long sectionNum;

    /** 部门id */
    @Excel(name = "部门id")
    private Long depId;

    /** 逻辑删除 */
    @TableLogic(value = "0", delval = "1")
    private Long delFlag;

    /**
     * 发布次数
     */
    @Excel(name = "发布次数")
    private Long publishTimes;

    /**
     * 最近一次发布时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最近一次发布时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date publishTime;

    /**
     * 课程评分标准
     */
    @TableField(exist = false)
    private String gradingCriteria;

    /**
     * 课程介绍
     */
    @TableField(exist = false)
    private String courseIntroduce;

    /**
     * 适用人群
     */
    @TableField(exist = false)
    private String usePeople;

    /**
     * 课程详情
     */
    @TableField(exist = false)
    private String courseDetail;
    @TableField(exist = false)
    private String announcement;
    @TableField(exist = false)
    private BigDecimal longitude;
    @TableField(exist = false)
    private BigDecimal latitude;
    @TableField(exist = false)
    private String address;

//    /**
//     * 创建人id
//     */
//    @Excel(name = "创建人")
//    private Long createBy;
//    /**
//     * 修改人id
//     */
//    @Excel(name = "修改人")
//    private Long updateBy;
//    /**
//     * 创建时间
//     */
//    @Excel(name = "创建时间")
//    private Date createTime;
//    /**
//     * 修改时间
//     */
//    @Excel(name = "修改时间")
//    private Date updateTime;

}
